package com.ytclub.subject.domain.service;


import com.ytclub.subject.common.entity.PageResult;
import com.ytclub.subject.domain.entity.SubjectLikedBO;

/**
 * 点赞表 领域service
 *
 * @author HuangQi
 * @since 2024-04-24 07:10:54
 */
public interface SubjectLikedDomainService {

    /**
     * 添加 点赞表 信息
     *
     * @param subjectLikedBO 新增点赞信息
     * @return 是否新增成功
     */
    void add(SubjectLikedBO subjectLikedBO);

    /**
     * 获取题目是否被某个用户点赞过
     *
     * @param subjectId 题目id
     * @param userId    用户id
     * @return 是否被点赞过
     */
    Boolean isLiked(String subjectId, String userId);

    /**
     * 获取点赞数量
     *
     * @param subjectId 题目id
     * @return 点赞数量
     */
    Integer getLikedCount(String subjectId);

    /**
     * 更新点赞表
     *
     * @param subjectLikedBO 更新点赞信息
     * @return 是否更新成功
     */
    Boolean update(SubjectLikedBO subjectLikedBO);

    /**
     * 删除点赞表
     *
     * @param subjectLikedBO 删除点赞信息
     * @return 是否删除成功
     */
    Boolean delete(SubjectLikedBO subjectLikedBO);

    /**
     * 同步点赞数据
     */
    void syncLiked();

    /**
     * 获取我的点赞列表
     *
     * @param subjectLikedBO 查询条件
     * @return 点赞列表
     */
    PageResult<SubjectLikedBO> getSubjectLikedPage(SubjectLikedBO subjectLikedBO);
}
